約 2,604,125 件
https://w.atwiki.jp/mymy212/pages/13.html
GNU Emacs GNU Emacs Emacs 電子書棚 CLiki CL-Emacs .
https://w.atwiki.jp/nanige/pages/11.html
color themeを使ってemacsのカラー設定をする。 背景が暗い色じゃないと疲れてしまうのです。 emacs21をdebian etch上で使用中。 color themeのインストール emacs on debianの場合 # apt-get inastall emacs-goodies-el emacs設定 ~/.emacsに以下を追加 (require color-theme) (color-theme-blue-sea) blue-seaはthemeの名前 tags debian emacs
https://w.atwiki.jp/nkym_memo/pages/158.html
;; .emacs ;; Last Updated 2011/10/20 Thu 09 26 23 (custom-set-variables ;; custom-set-variables was added by Custom. ;; If you edit it by hand, you could mess it up, so be careful. ;; Your init file should contain only one such instance. ;; If there is more than one, they won't work right. '(column-number-mode t) '(show-paren-mode t)) (custom-set-faces ;; custom-set-faces was added by Custom. ;; If you edit it by hand, you could mess it up, so be careful. ;; Your init file should contain only one such instance. ;; If there is more than one, they won't work right. '(default ((t ( inherit nil stipple nil background "gray7" foreground "white" inverse-video nil box nil strike-through nil overline nil underline nil slant normal weight normal height 98 width normal foundry "unknown" family "Takaoゴシック"))))) (if window-system (progn ;; 文字の色を設定 (add-to-list 'default-frame-alist '(foreground-color . "white")) ;; 背景色を設定 (add-to-list 'default-frame-alist '(background-color . "gray7")) ;; カーソルの色を設定 (add-to-list 'default-frame-alist '(cursor-color . "SlateBlue2")) ;; ;; マウスポインタの色を設定 ;; (add-to-list 'default-frame-alist '(mouse-color . "SlateBlue2")) ;; ;; モードラインの文字の色を設定 ;; (set-face-foreground 'modeline "white") ;; ;; モードラインの背景色を設定 ;; (set-face-background 'modeline "MediumPurple2") ;; ;; 選択中のリージョンの色を設定 (set-face-background 'region "Dark Slate Grey") ;; ;; モードライン(アクティブでないバッファ)の文字色を設定 ;; (set-face-foreground 'mode-line-inactive "gray30") ;; ;; モードライン(アクティブでないバッファ)の背景色を設定 ;; (set-face-background 'mode-line-inactive "gray85") (set-face-foreground 'font-lock-comment-face "darkorange") ;; コメント (set-face-foreground 'font-lock-string-face "hotpink") ;; ""で囲まれた文字 (set-face-foreground 'font-lock-keyword-face "cyan") (set-face-foreground 'font-lock-function-name-face "white") (set-face-foreground 'font-lock-variable-name-face "white") (set-face-foreground 'font-lock-type-face "skyblue1") (set-face-foreground 'font-lock-warning-face "yellow") (set-face-foreground 'font-lock-builtin-face "lightsteelblue") )) ;;auto-install.elのインストール手順 ;; $mkdir -p ~/.emacs.d/auto-install ;; cd ~/.emacs.d/auto-install ;; wget http //www.emacswiki.org/emacs/download/auto-install.el ;; emacs --batch -Q -f batch-byte-compile auto-install.el ;;;Emacs Lispインストーラを利用 (add-to-list 'load-path "~/.emacs.d/auto-install") (add-to-list 'load-path "~/.emacs.d/plugins/yasnippet-0.6.1c/") ;;; install-elisp-from-emacswiki "auto-install.el" (require 'auto-install) ;;起動時にEmacswikiのページを補完候補に加える ;;(auto-install-update-emacswiki-package-name t) ;;install-elisp.el互換モード (auto-install-compatibility-setup) ;;ediff関連のバッファを一つのフレームにまとめる (setq ediff-window-setup-function 'ediff-setup-windows-plain) ;;================================================================================ ;; 基本設定 ;;================================================================================ ;; スタートアップを非表示 (setq inhibit-startup-screen -1) ;; ビープ音を消す (setq ring-bell-function 'ignore) ;; 現在行に色をつける (global-hl-line-mode 1) ;; その行の色 (set-face-background 'hl-line "black") ;; 履歴を次回Emacs起動時にも保存する (savehist-mode 1) ;; 対応する括弧を光らせる (show-paren-mode 1) ;; カーソルの位置が何文字目かを表示する (column-number-mode t) ;; バックアップファイルを作らない (setq backup-inhibited t) ;; Xでのクリップボードを共有 (setq x-select-enable-clipboard t) ;; yes-or-noをy-or-nに省略 (defalias 'yes-or-no-p 'y-or-n-p) ;; 行の先頭でC-kを一回押すだけで行全体を消去する (setq kill-whole-line t) ;; ツールバーを非表示 (tool-bar-mode -1) ;; メニューバーを非表示 (menu-bar-mode -1) ;; 圧縮されたファイルも編集できるようにする (auto-compression-mode t) ;; スクロールを一行ずつにする (setq scroll-step 1) ;;; 現在の関数名をモードラインに表示 (which-function-mode 1) ;;; emacsclient ;; ファイルを現在のemacsで開く ;(server-start) ;;------------------------ キーバインドの変更 ---------------------------------- ;; 指定の行に移る (global-set-key "\M-g" 'goto-line) ;; undo (global-set-key "\C-z" 'undo) ;; ウィンドウの移動をM-tに (global-set-key "\M-t" 'other-window) ;; C-hをBackSpaceに (global-set-key "\C-h" 'delete-backward-char) ;; M-x compile を f5 に (global-set-key [f5] 'compile) ;;;------------------- 初期フレームの設定 ------------------------------------ (setq initial-frame-alist (append '((width . 45) ; フレーム幅(文字数) (height . 92)) ; フレーム高(文字数) initial-frame-alist)) ;;; 新規フレームのデフォルト設定 (setq default-frame-alist (append '((width . 45); フレーム幅(文字数) (height . 92)); フレーム高(文字数) default-frame-alist)) ;;; ファイル更新日を自動的に書き換える。 ;; ファイルの頭に "last updated "をつけくわえればよい (require 'time-stamp) ;; 日本語で日付を入れたくないのでlocaleをCにする (defun time-stamp-with-locale-c () (let ((system-time-locale "C")) (time-stamp) nil)) (if (not (memq 'time-stamp-with-locale-c write-file-hooks)) (add-hook 'write-file-hooks 'time-stamp-with-locale-c)) (setq time-stamp-active t) (setq time-stamp-start "Last Updated ") (setq time-stamp-format "%04y/%02m/%02d %3a %02H %02M %02S") (setq time-stamp-end " ") ;;;Last Updated の後に空白2つ以上いれると置換 ;;; タイトルバーにファイル名を表示する (setq frame-title-format (format "emacs@%s %%f" (system-name))) ;;; ファイルの自動挿入 (auto-insert-mode) ;; 自動挿入するファイルのあるディレクトリ ;; 最後の/は必須 (setq auto-insert-directory "~/.emacs.d/insert/") ;; 自動挿入するファイル (define-auto-insert "\\.c" "c-template.c") ;;================================================================================ ;;; viewer.el view-modeの設定 ;; M-x install-elisp-from-emacswiki viewer.el ;; ;; C-x C-rでview-modeでファイルを開く (setq view-read-only t) ;; 書き込み不能な場合はview-modeを抜けないように (require 'viewer) (viewer-stay-in-setup) ;; .log .out .datファイルをview-modeで開く (setq view-mode-by-default-regexp "\\.log") (setq view-mode-by-default-regexp "\\.out") (setq view-mode-by-default-regexp "\\.dat") ;;; view-mode時にモードラインに色をつける ;; 色名を指定 (setq viewer-modeline-color-unwritable "tomato") (setq viewer-modeline-color-view "orange") (viewer-change-modeline-color-setup) ;; view-mode時のキーバインド (define-key view-mode-map "h" 'backward-char) (define-key view-mode-map "j" 'next-line) (define-key view-mode-map "k" 'previous-line) (define-key view-mode-map "l" 'forward-char) (define-key view-mode-map "J" 'View-scroll-line-forward) (define-key view-mode-map "K" 'View-scroll-line-backward) (define-key view-mode-map "b" 'scroll-down) (define-key view-mode-map " " 'scroll-up) ;; ;; bm.el (define-key view-mode-map "m" 'bm-toggle) (define-key view-mode-map "[" 'bm-previous) (define-key view-mode-map "]" 'bm-next) ;; view-modeを有効・無効にする ;; 0.04秒以内に jk を同時押しでview-modeに移行 (require 'key-chord) (setq key-chord-two-keys-delay 0.04) (key-chord-mode 1) (key-chord-define-global "jk" 'view-mode) ;================================================================================ ;;; redo+.el (require 'redo+) ;; M-zに設定 (global-set-key "\M-z" 'redo) (setq undo-no-redo t); 過去のundoがredoされないようにする ;; 大量のundoに耐えられるようにする (setq undo-limit 600000) (setq undo-strong-limit 900000) ;;;fullscreen.el (require 'fullscreen) ;;;-------------------- recentf-ext.el -------------------------- ;; install-elisp-from-emacswiki recentf-ext.el ;; 保存しておく数 (setq recentf-max-saved-items 1000) ;; 最近使ったファイルに加えないファイルを正規表現で指定する (setq recentf-exclude '("/TAGS$" "/var/tmp/")) (require 'recentf-ext) ;; f8をショートカットキーに (global-set-key [f8] 'recentf-open-files) ;;; auto-complete.el ;; install-elisp-from-emacswiki auto-complete.el ;;(require 'auto-complete) ;;(global-auto-complete-mode 1) ;;;col-highlight.el ;; auto-install-batch col-highlight.el ;(require 'col-highlight) ;(column-highlight-mode 1) ;;何もしないでいるとハイライトを始めるようにする場合 ;(toggle-highlight-column-when-idle 1) ;(col-highlight-set-interval 3) ;;;============================= hippie-expand ==================================== ;;; 略語展開の順を設定 (setq hippie-expand-try-functions-list '(try-expand-dabbrev try-expand-dabbrev-all-buffers try-expand-dabbrev-from-kill try-complete-file-name-partially try-complete-file-name try-expand-all-abbrevs try-expand-list try-expand-line try-complete-lisp-symbol-partially try-complete-lisp-symbol)) ;; キーバインドの変更 C-; (global-set-key [?\C-\;] 'hippie-expand ) ;;; ipa.el (require 'ipa) ;;; 背景色 (set-face-background 'highlight "Corn Flower Blue") ;;;---------------------- sequential-command.el--------------------------------- ;;; M-x auto-install-batch sequential-command (require 'sequential-command-config) (sequential-command-setup-keys) ;;================================================================================ ;;; smartchr.el ;; M-x install-elisp ;; https //github.com/imakado/emacs-smartchr/raw/master/smartchr.el (require 'smartchr) ;; once "", twice " (global-set-key (kbd "\"") (smartchr '("\"`!!'\"" "\""))) (add-hook 'c-mode-hook '(lambda () (local-set-key ( kbd "(") (smartchr '("( `!!' )" "()" "("))) (local-set-key ( kbd "\'") (smartchr '("\'`!!'\'" "\'"))) (local-set-key ( kbd "\,") (smartchr '("\, " "\,"))) (local-set-key (kbd "[") (smartchr '("[ `!!' ]" "["))) (local-set-key (kbd "=") (smartchr '("= " "==" "="))) )) (add-hook 'c++-mode-hook '(lambda () (local-set-key ( kbd "(") (smartchr '("( `!!' )" "()" "("))) (local-set-key ( kbd "\'") (smartchr '("\'`!!'\'" "\'"))) (local-set-key ( kbd "\,") (smartchr '("\, " "\,"))) (local-set-key (kbd "[") (smartchr '("[ `!!' ]" "["))) (local-set-key (kbd "=") (smartchr '("= " "== " "="))) )) (add-hook 'org-mode-hook '(lambda () (local-set-key ( kbd "$" ) ( smartchr '("" "$" ))) (local-set-key ( kbd "\{" ) ( smartchr '("\{`!!'\}" "\{" ))) )) ;;;----------------------- auto-save-buffers.el --------------------------------- ;; M-x install-elisp ;; http //homepage3.nifty.com/oatu/emacs/archives/auto-save-buffers.el (require 'auto-save-buffers) ;; アイドル0.5秒で保存 (run-with-idle-timer 0.5 t 'auto-save-buffers) (run-with-idle-timer 0.5 t 'auto-save-buffers "" ".ipa$") ;;; open-junk-file.el ;; M-x install-elisp-from-emacswiki open-junk-file.el ;; Usage M-x open-junk-file (require 'open-junk-file) (setq open-junk-file-format "~/junk/%Y-%m-%d-%H%M%S.") (global-set-key "\C-x\C-j" 'open-junk-file) ;;; bm.el ;; M-x install-elisp ;; http //cvs.savannah.gnu.org/viewvc/*checkout*/bm/bm/bm.el (setq-default bm-buffer-persistence nil) (setq bm-restore-repository-on-load t) (require 'bm) (add-hook 'find-file-hooks 'bm-buffer-restore) (add-hook 'kill-buffer-hook 'bm-buffer-save) (add-hook 'after-save-hook 'bm-buffer-save) (add-hook 'after-revert-hook 'bm-buffer-restore) (add-hook 'vc-before-checkin-hook 'bm-buffer-save) (global-set-key [f7] 'bm-toggle) (global-set-key "\C-xp" 'bm-previous) (global-set-key "\C-xn" 'bm-next) ;;; twittering-mode (add-to-list 'load-path "~/.emacs.d/twittering-mode-1.0.0/") (require 'twittering-mode) ;; Show icons (setq twittering-icon-mode t) ;; Update your timeline each 300 seconds (5 minutes) (setq twittering-timer-interval 30) (add-hook 'twittering-mode-hook (lambda () (mapc (lambda (pair) (let ((key (car pair)) (func (cdr pair))) (define-key twittering-mode-map (read-kbd-macro key) func))) '(("F" . twittering-friends-timeline) ("R" . twittering-replies-timeline) ("U" . twittering-user-timeline) ("W" . twittering-update-status-interactive))))) ;;;================== Latex ======================================== ;; 日本語コードをeuc-japanに (set-language-environment "Japanese") (set-default-coding-systems 'euc-japan) (set-terminal-coding-system 'euc-japan) ;;; Yatex (setq YaTeX-inhibit-prefix-letter nil) (setq dvi2-command "xdvi -geo +0+0 -s 7 -expert -watchfile 3") ;;;reftex (add-hook 'latex-mode-hook 'turn-on-reftex) ; with Emacs latex mode (add-hook 'LaTeX-mode-hook 'turn-on-reftex) ; with AUCTeX LaTeX mode (add-hook 'yatex-mode-hook 'turn-on-reftex) ; with YaTeX mode ;;------------------- 行番号の表示 --------------------------------- (autoload 'setnu-mode "setnu" nil t) (global-set-key [f12] 'setnu-mode) ;;========================== kmacro-save =============================== (defvar kmacro-save-file "~/.emacs" "キーボードマクロを保存するファイル") (defun kmacro-save (symbol) (interactive "name for last kbd macro ") (name-last-kbd-macro symbol) (with-current-buffer (find-file-noselect kmacro-save-file) (goto-char (point-max)) (insert-kbd-macro symbol) (basic-save-buffer))) ;; 現在行をコピー (fset 'select-this-line "\C-e\C-@\C-a\M-w") (global-set-key [?\C-\,] 'select-this-line) ;; 文末に;を入力 (fset 'insert-statement-end "\C-e;\C-j") (global-set-key [?\C-\.] 'insert-statement-end) ;; {}を改行してインデント (fset 'parentheses-and-indent "\C-e{\C-j\C-j}\C-p") (global-set-key [?\M-\[] 'parentheses-and-indent) ;; インデントして次の行へ (fset 'indent-and-next "\C-i\C-n") (global-set-key [?\M-i] 'indent-and-next) ;;------------- yasnippet.el ------------------------------- (require 'yasnippet-config) (yas/setup "~/.emacs.d/plugins/yasnippet-0.6.1c") ;;------------- iswitchb.el ------------------------------- ;; バッファ切り替えを部分文字列で可能に (iswitchb-mode 1) (setq read-buffer-function 'iswitchb-read-buffer) (setq iswitchb-regexp nil) ;; 新しいバッファ作成するときは聞かない (setq iswitchb-prompt-newbuffer nil) ;; uniquify.el (require 'uniquify) ;; filename dir の形式 (setq uniquify-buffer-name-style 'post-forward-angle-brackets) ;; *で囲まれたバッファ名は対象外にする (setq uniquify-ignore-buffers-re "*[^*]+*") ;;---------------html-helper-mode------------------------------ (require 'html-helper-mode) (require 'html-mode) (require 'tempo) ;;--------------org-mode--------------------------------------- (require 'org) (defun org-insert-upheading-dwim (arg) "1レベル上の見出しを入力する" (interactive "P") (org-insert-heading arg) (cond ((org-on-heading-p) (org-do-promote)) ((org-at-item-p) (org-indent-item -1)))) (defun org-insert-heading-dwim (arg) "現在と同じレベルの見出しを入力する。" "C-u 1レベル上" "C-u C-u 1レベル下" (interactive "p") (case arg (4 (org-insert-subheading nil)) ;C-u (16 (org-insert-upheading nil)) ;C-u C-u (t (org-insert-heading nil)))) (define-key org-mode-map (kbd " C-return ") 'org-insert-heading-dwim) (org-remember-insinuate) ;; メモを格納するorgファイルの設定 (setq org-directory "~/Documents/memo") (setq org-default-notes-file (expand-file-name "memo.org" org-directory)) ;; テンプレートの設定 (setq org-remember-templates '(("Note" ?n "** %?\n %i\n %a\n %T" nil "Inbox") ("Todo" ?t "** TODO %?\n %i\n %a\n %T" nil "Inbox"))) ;; Select template [n]ote [t]odo (global-set-key [f1] 'org-remember) ;; TODOリストの設定 (setq org-use-fast-todo-selection t) (setq org-todo-keywords '((sequence "TODO(t)" "STARTED(s)" "WAITING(w)" "|" "DONE(x)" "CANCEL(c)") (sequence "APPT(a)" "|" "DONE(x)" "CANCEL(c)" ))) ;; ハイパーリンクの作成 (global-set-key (kbd "C-c l") 'org-store-link) ;; M-x org-rememberによるメモを集めるorgファイル (setq org-default-notes-file "~/Documents/memo/plan.org") ;; 予定表に使うorgファイルのリスト (setq org-agenda-files (list org-default-notes-file)) (global-set-key (kbd "C-c a") 'org-agenda) ;; w3m (require 'w3m-load) (setq w3m-home-page "www.google.co.jp/") ;起動時に開くページ (setq w3m-use-cookies t) ;クッキーを使う (setq w3m-bookmark- "~/.w3m/bookmark.html") ;ブックマークを保存する (setq browse-url-browser-function 'w3m-browse-url) (autoload 'w3m-browse-url "w3m" "Ask a browser to show a URL." t) (global-set-key "\C-xm" 'browse-url-at-point) (autoload 'w3m-find-file "w3m" "w3m interface function for local file." t) (autoload 'w3m-search "w3m-search" "Search QUERY using SEARCH-ENGIN." t) (setq w3m-search-default-engin "google-ja") (global-set-key "\C-cs" 'w3m-search) (autoload 'w3m-weather "w3m-weather" "Display weather report." t) (autoload 'w3m-antenna "w3m-antenna" "Report change of WEB ." t) (autoload 'w3m- "w3m-namazu" "Search files with Namazu." t) ;; 折りたたみ (require 'fold-dwim) ;; コンパイルでの*compilation*ウィンドウの文字コード調整 (add-hook 'set-language-environment-hook (lambda () (when (equal "ja_JP.UTF-8" (getenv "LANG")) (setq default-process-coding-system '(utf-8 . utf-8)) (setq default-file-name-coding-system 'utf-8)) (when (equal "Japanese" current-language-environment) (setq default-buffer-file-coding-system 'iso-2022-jp)))) (set-language-environment "Japanese")
https://w.atwiki.jp/wicky/pages/188.html
背景色 背景色を設定するためには、background-colorプロパティを使用する。プロパティの値には、通常の色名や数値によって色を指定する。デフォルト値には、transparent(透明)が設定されているため、親要素の色が透過的に表示されている。 ●背景色の設定 body { background-color gray; } p { background-color white; }
https://w.atwiki.jp/phys_ss/pages/30.html
emacsに関する覚え書き 有用な解説サイト Emacsの使い方(薮 哲郎) MeadowでFortran90プログラミング
https://w.atwiki.jp/ntemacs/pages/50.html
■ Windows版 Emacs 共通の設定 ■ Windows Subsystem for Linux の Emacs で利用できる設定 【お知らせ】 2022/06/14 追記 最近ビルドした方はさらに苦労されているようです。お疲れ様です。 https //zenn.dev/ignorant/scraps/6132afb5915f34 2018/08/12 追記 最近、mozc_emacs_helper.exe をビルドされた方の情報が次のページにあります。 https //qiita.com/ignorant/items/1c4f729f9147fb878f10 最新の mozc には src/data_manager/packed/packed_data_manager.gyp が無くなったようで、そのパッチが削除されています。また、ひとつ下のコメントで紹介している rzl24ozi さんのパッチを利用しているので、セッション接続直後 direct モードになる問題が対策された実行モジュールがビルドされるようになっています。独自ビルドされる方は参考とされてください。 2017/06/08 追記 rzl24ozi さんの次のページを見つけました。私はまだ試せていませんが、本ページの代わりのものとして利用できそうです。ただし、WSL版 Emacs で Windows の Google日本語入力を利用したい場合には、次のページの方法は利用できません。 https //github.com/rzl24ozi/mozc-emacs-helper-module 2017/06/08 追記 本ページの記載内容は古くなってきています。本ページを作成するために参考とした情報の最新のものが次のページにありますので、こちらのページも併せて確認してください。 https //github.com/google/mozc/blob/master/docs/build_mozc_in_windows.md なお、公開しているバイナリ(mozc_emacs_helper.exe)もかなり前にコンパイルしたものですが、こちらは現在でも問題なく動いています。 2016/09/13 追記 mozc_emacs_helper.exe のテストの際に IME を ON にするために入力しているキーを「Hiragana」から「Hankaku/Zenkaku」に変更しました。この対応で、Google日本語入力のキー設定が「MS-IME」以外の「ことえり」などでもテストが通るようになりました。(ただし、「Hankaku/Zenkaku」キーは「Hiragana」キーと異なり、IME の ON/OFF をトグルするキーとなります。必要な場合に一度のみ発行するように注意して利用する必要があります。) 2015/10/01 追記 OSS mozc の Wish List が書かれた blog がありました。 http //nyaruru.hatenablog.com/ 【本題】 関連して「emacs-mozc を動かすための設定(Emacs 設定編)」、「emacs-mozc を動かすための設定(WSL 設定編)」も参照ください。 Windows版 Emacs や WSL の Emacs で 「Google日本語入力」と連携可能な emacs-mozc を動かすための mozc_emacs_helper コンパイル編 です。 mozc_emacs_helper.exe の取得のみが目的であれば、次のページからバイナリをダウンロード可能です。かなり前にビルドしたものですが、現在でも問題なく動作しています。 https //github.com/smzht/mozc_emacs_helper 0) 事前に「Google日本語入力」のインストールを行う。 http //www.google.co.jp/ime/ 1) 次のページから Visual Studio Community 2013 をインストールする。 https //www.visualstudio.com/ja/vs/older-downloads/ (参考)http //www.softantenna.com/wp/windows/visual-studio-community-2014/ ※ Visual Studio Community 2013 のインストールでは、最低「Microsoft Foundation Classes for C++」のインストールを行ってください。Language Pack は無くても構いません。 ※ (2017/11/27 追記)上記【お知らせ】にも記載していますが、本ページの記載内容は古くなってきています。現在は、Visual Studio Community 2015 の利用が推奨されています。次のページも併せて参照してください。 https //github.com/google/mozc/blob/master/docs/build_mozc_in_windows.md https //qiita.com/ignorant/items/1c4f729f9147fb878f10 2) Cygwin 上で depot_tools.zip をダウンロードし、解凍する。 $ mkdir c /work $ cd c /work $ wget https //src.chromium.org/svn/trunk/tools/depot_tools.zip $ unzip depot_tools.zip 3) 作成された depot_toolsディレクトリ を PATH に追加し、gclient を二回実行する。 $ export PATH=`pwd`/depot_tools $PATH $ gclient $ gclient 4) mozc のソースをダウンロードする。 $ git.bat clone https //github.com/google/mozc.git --recursive 5) 作成された mozcディレクトリ に移動し、以下のパッチを適用する。 $ cd mozc $ patch -b -p0 src.patch src.patch は以下のとおりです。 packed_data_manager.gyp のパッチはコンパイルエラーを回避するためのもので、内容は適当です。(というか、どうすれば良いか分からない。) diff -urN src.orig/data_manager/packed/packed_data_manager.gyp src/data_manager/packed/packed_data_manager.gyp --- src.orig/data_manager/packed/packed_data_manager.gyp2014-11-17 19 23 22.000000000 +0900 +++ src/data_manager/packed/packed_data_manager.gyp2014-11-17 20 02 09.379555300 +0900 @@ -47,5 +47,12 @@ }, includes [ packed_data_manager.gypi ], }], + [ branding=="GoogleJapaneseInput" , { + variables { + dataset_dir oss , + dataset_tag oss , + }, + includes [ packed_data_manager.gypi ], + }], ], } diff -urN src.orig/win32/build32/build32.gyp src/win32/build32/build32.gyp --- src.orig/win32/build32/build32.gyp2014-11-17 19 25 33.000000000 +0900 +++ src/win32/build32/build32.gyp2014-11-17 20 02 52.369617200 +0900 @@ -49,6 +49,7 @@ ../broker/broker.gyp mozc_broker32 , ../ime/ime.gyp mozc_ime , ../tip/tip.gyp mozc_tip32 , + ../../unix/emacs/emacs.gyp mozc_emacs_helper , ], conditions [ [ use_dynamically_linked_qt!=1 , { 6) srcディレクトリ に移動し、次のコマンドを実行する。 $ cd src $ python.bat build_mozc.py gyp --msvs_version=2013 --noqt --branding=GoogleJapaneseInput $ python.bat build_mozc.py build -c Release package 7) out_win/Release に移動し、 mozc_emacs_helper.exe が作成されていることを確認する。 8) Cygwin や WSL の環境で次のコマンドを実行し、mozc_emacs_helper.exe が動作することを確認する。 $ echo -e (0 CreateSession)\n(1 SendKey 1 Hankaku/Zenkaku)\n(2 SendKey 1 97) | ./mozc_emacs_helper.exe ((mozc-emacs-helper . t)(version . "1.13.1641.0")(config . ((preedit-method . roman)))) ((emacs-event-id . 0)(emacs-session-id . 1)(output . ())) ((emacs-event-id . 1)(emacs-session-id . 1)(output . ((id . "14187429124963392915")(mode . hiragana)(consumed . t)(status . ((activated . t)(mode . hiragana)(comeback-mode . hiragana)))))) ((emacs-event-id . 2)(emacs-session-id . 1)(output . ((id . "14187429124963392915")(mode . hiragana)(consumed . t)(preedit . ((cursor . 1)(segment ((annotation . underline)(value . "あ")(value-length . 1)(key . "あ")))))(candidates . ((size . 3)(candidate ((index . 0)(value . "あああ")(annotation . ((deletable . t)))(id . 0))((index . 1)(value . "安比")(annotation . ((deletable . t)))(id . 1))((index . 2)(value . "あ")(annotation . ((description . "ひらがな")))(id . 2)))(position . 0)(category . suggestion)(display-type . main)(footer . ((label . "Tabキーで選択")))))(status . ((activated . t)(mode . hiragana)(comeback-mode . hiragana)))(all-candidate-words . ((candidates ((id . 0)(index . 0)(key . "あああ")(value . "あああ")(annotation . ((deletable . t))))((id . 1)(index . 1)(key . "あっぴ")(value . "安比")(annotation . ((deletable . t))))((id . 2)(index . 2)(value . "あ")(annotation . ((description . "ひらがな")))))(category . suggestion)))))) ※ Linux で mozc_emacs_helper を実行した場合は、セッション接続直後に hiraganaモード になるのですが、Windows の環境では directモード になるようです。このため、「(1 SendKey 1 Hankaku/Zenkaku)」を挟んでいます。このための対策を「emacs-mozc を動かすための設定(Emacs 設定編)」の設定で行っています。 ※ Windows 8.1 では、一回の「Hankaku/Zenkaku」キーの発行だけでは hiraganaモード に移行しない場合があるようです。その場合は次のコマンドをお試しください。ただし、この現象による「emacs-mozc を動かすための設定(Emacs 設定編)」の変更は必要ありませんでした。(※ 2016/10/12 追記: 時間的なタイミングの問題の可能性もあるので、「Hankaku/Zenkaku」キーの発行の後に delay(sleep)を入れることでも解決するかもしれません。現在、Windows 8.1 の環境がない(全て、Windows 10 に upgrade してしまった)ため、確認ができておりません。) $ echo -e (0 CreateSession)\n(1 SendKey 1 Hankaku/Zenkaku)\n(2 SendKey 1 Hankaku/Zenkaku)\n(3 SendKey 1 97) | ./mozc_emacs_helper.exe 9) Windows版 Emacs を使っている方は、mozc_emacs_helper.exe をコマンドパスの通ったディレクトリ(~/bin 等)に配置する。WSL の Emacs を使っている方は、次に進む。 10) Windows版 Emacs を使っている方は「emacs-mozc を動かすための設定(Emacs 設定編)」を、WSL の Emacs を使っている方は「emacs-mozc を動かすための設定(WSL 設定編)」の設定を行う。 変更履歴 2014/11/17 このページを作成した。 2014/11/19 mozc_emacs_helper のバイナリを追加した。 2015/07/04 Windows8.1 で検証を行った結果のコメントを追記した。
https://w.atwiki.jp/trinityt/pages/15.html
Emacs テクニック 空行削除 M-x → flush-lines → ^$ 置換時に改行指定 C-q C-j 簡易キーバインドシート 上下左右へ移動 C-p, C-n, C-b, C-f 行頭・行末へ移動 C-a, C-e 1画面進む・戻る C-v, M-v ファイルの先頭・最後へ M- , M- 操作キャンセル C-g 強制終了 C-x C-c 一時中断 C-z (復帰はシェルからfg) カーソルのある1文字削除 C-d アンドゥ C-x u カーソル位置から行末まで削除 C-k カーソル位置にマーク C-SPC リージョンをカット C-w (C-SPCとの合わせ技) リージョンをコピー M-w (C-SPCとの合わせ技) ペースト C-y 履歴ペースト C-y 後に M-y ファイル読み込み C-x C-f 上書き保存 C-x C-s 指定ファイルに保存 C-x C-w ウィンドウを縦に2分割 C-x 2 別のウィンドウを消す C-x 1 ウィンドウ間でカーソル移動 C-x o バッファのリスト C-x C-b インクリメンタル検索 C-s 文字列検索 M-x occur 文字列置換 M-% カーソル以降置換 M-x replace-string .emacs ;;; X-Setting (custom-set-variables ;; custom-set-variables was added by Custom. ;; If you edit it by hand, you could mess it up, so be careful. ;; Your init file should contain only one such instance. ;; If there is more than one, they won t work right. (column-number-mode t) (current-language-environment Japanese ) (display-time-mode t) (scroll-bar-mode (quote right)) (show-paren-mode t)) (custom-set-faces ;; custom-set-faces was added by Custom. ;; If you edit it by hand, you could mess it up, so be careful. ;; Your init file should contain only one such instance. ;; If there is more than one, they won t work right. (default ((t ( inherit nil stipple nil background black foreground white inverse-video nil box nil strike-through nil overline nil underline nil slant normal weight normal height 110 width normal foundry unknown family IPAGothic ))))) ;;; デフォルトload-path (add-to-list load-path ~/.emacs.d/elisp ) ;;; 基本設定 (setq-default tab-width 4) ;;tab4文字 (setq scroll-conservatively 35 scroll-margin 0 scroll-step 1) ;;スクロール量を1にする (setq line-number-mode t) ;;カーソル行番号表示 (setq inhibit-startup-message t) ;;スタートアップメッセージ非表示 (display-time) ;;auto-compression-mode t) ;;日本語info文字化け防止 (show-paren-mode 1) ;;対応括弧ハイライト (setq make-backup-files nil) ;;; *.~ とかのバックアップファイルを作らない (setq auto-save-default nil) ;;; .#* とかのバックアップファイルを作らない (setq x-select-enable-clipboard t) ;;; Kill-ringとXのclipboardを共有する ;;; F11でfullscreenを切り替えられるようにする (defun switch-full-screen () (interactive) (shell-command wmctrl -r ACTIVE -btoggle,fullscreen )) (global-set-key [f11] switch-full-screen) ;;; メニューを日本語化 (require menu-tree) ;;; line-number表示 (require linum) (global-linum-mode t) (setq linum-format %5d ) ;; Interactively Do Things (highly recommended, but not strictly required) (require ido) (ido-mode t) ;;; IIIMECF設定 (add-to-list load-path ~/.emacs.d/elisp/iiimecf ) (setq iiimcf-server-control-hostlist (list (concat /tmp/.iiim- (user-login-name) / 0.0 ))) (setq iiimcf-server-control-default-language ja ) (setq iiimcf-server-control-default-input-method atokx3 ) (setq default-input-method iiim-server-control) (require iiimcf-sc) (global-set-key [?\S-\ ] toggle-input-method) ;; Rinari (add-to-list load-path ~/.emacs.d/elisp/rinari ) (require rinari) ;;; rhtml-mode (add-to-list load-path ~/.emacs.d/elisp/rhtml ) (require rhtml-mode) (add-hook rhtml-mode-hook (lambda () (rinari-launch))) ;;; emacs-nav (add-to-list load-path ~/.emacs.d/elisp/emacs-nav ) (require nav) (global-set-key \C-x\C-d nav-toggle) ;;; elscreen (add-to-list load-path ~/.emacs.d/elisp/elscreen ) (require elscreen) IIIMECFについて ATOK標準のキーバインドを使用可能とするため、iiimcf.el(IIIMECF付属)に以下のパッチを当てる。 パッチの当て方 $ patch iiimcf.el iiimcf.patch iiimcf.patch --- lisp/iiimcf.el 2007-12-23 03 33 55.000000000 +0900 *************** *** 284,289 **** --- 284,302 ---- (defvar iiimcf-keycode-spec-alist `((13 10 0) + + (11 37 65535) ; Ctrl + k + (12 39 65535) ; Ctrl + l + (14 40 65535) ; Ctrl + n + + (21 117 65535) ; Ctrl + u + (9 118 65535) ; Ctrl + i + (15 119 65535) ; Ctrl + o + (16 120 65535) ; Ctrl + p + + (2 38 65535) ; Ctrl + b + (7 27 65535) ; Ctrl + g + (32 32) ,@(mapcar # (lambda (x) (list x x 0)) (iiimcf-numseq 1 31))
https://w.atwiki.jp/karaiknowledge/pages/43.html
カーソル移動 C-f (forward-char) 1文字進む (→) C-b (backward-char) 1文字戻る (←) C-n (next-line) 次の (= next) 行へ (↓) C-p (previous-line) 前の (= previous) 行へ (↑) M-f (forward-word) 1語進む M-b (backward-word) 1語戻る C-e (end-of-line) 行末へ C-a (beginning-of-line) 行頭へ M-e (forward-sentence) 文末へ M-a (backward-sentence) 文頭へ M- (end-of-buffer) 現在位置をマークしバッファ末尾へ M- (beginning-of-buffer) 現在位置をマークしバッファ先頭へ C-v (scroll-up) 1画面分進む M-v (scroll-down) 1画面分戻る C-x L (goto-line) 指定した行へ移動... C-l (recenter) カーソルが画面中央にくるようにする Eited By Karai 入門Meadow/Emacs 削除 C-d カーソルの位置の文字を削除 C-k カーソルの位置も文字から行末までを削除 Edited By karai バッファ操作 C-x k バッファを閉じる Eited By Karai 各種モード nXMLモード XMLを編集するモード Eited By Karai
https://w.atwiki.jp/ntemacs/
【お知らせ】 ● 本サイトは NTEmacs の情報サイトなのですが、私が WSL版 Emacs に乗り換えたため、そちらに関連する情報が多くなってきています。WSL版 Emacs も Windows 上で動作する Emacs ですので、本サイトの目的とは合致していると思っています。 ● WSL版 Emacs に行き着くまで、Linux版 Emacs、MinGW版 Emacs、Cygwin版 Emacs といろいろ使ってきましたが、今のところ Windows で Emacs を使うには WSL Emacs on VcXsrv がベストな選択だと思っています。WSL コマンド(https //github.com/smzht/wsl-utils)や Windows コマンド(https //github.com/smzht/win-utils)の作成、Google日本語入力 と連携可能な mozc_emacs_helper.exe のビルドの成功(https //github.com/smzht/mozc_emacs_helper)、さらには以降で紹介している Emacs の設定の整備により、WSL 上で Emacs を使う場合の不便な点は概ね解消されていると思います。 ■ Windows 10 2004 がリリースされましたので、WSL から WSL2 に移行しました。多少の調整は必要でしたが、WSL の環境をほぼそのまま WSL2 で実現できました。調整が必要だった箇所は、「WSL で Emacs を使うための設定 」の 【お知らせ】 に記載しています。 ■ X Window Server は VcXsrv から GWSL に乗り換えました。GWSL も 内部で VcXsrv を利用しており、VcXsrv と同等に利用可能です。Microsoft 謹製の WSLg も Windows 11 では利用可能となっていますが、Windows の操作方法が独自になるなどの理由から、GWSL の方を利用しています。 【トピック】 ★ NTEmacs の設定とは関係ありませんが、Windows の操作を Emacs のキーバインドで行うための設定 を公開しています。OS まるごと Emacsキーバインドで操作することができ快適です。お試しください! Windows の操作を Emacs のキーバインドで行うための設定 (Keyhac版) update! (2022/06/23) ★日本語キーボードを英語キーボード配列で使おうとした際に調べた情報 をまとめています。Keyhac + Fakeymacs で実現する設定のリンクも載せています。お試しください! 英語キーボード設定の OS で日本語キーボードを使うときの情報まとめ update! (2021/09/10) ★ WSL で Emacs を使うための設定 をまとめました。WSL Emacs は Windows との相性がとても良く、Linux、Windows 双方にアクセスするためのユーザインタフェースとしての利用にとても便利です。お試しください! WSL で Emacs を使うための設定 update! (2022/10/14) ● WSL の emacsclient を Windows から利用するための設定 をまとめました。WSL Emacs を Windows で起動するためのコマンドも紹介しています。お試しください。 WSL の emacsclient を Windows から利用するための設定 update! (2021/02/05) ● VSCode で開いているファイルを WSL の Emacs で開くための設定 をまとめました。Remote-WSL を設定した VSCode でも利用可能です。お試しください。 VSCode で開いているファイルを WSL の Emacs で開くための設定 update! (2019/11/06) ● WSL の Emacs から VSCode でファイルを開くための設定 をまとめました。VSCode の Remote Development にも対応しています。お試しください。 WSL の Emacs から VSCode でファイルを開くための設定 update! (2019/10/31) ● helm で peco もどきのコマンドを使うための設定 をまとめした。peco が使えない shell-mode で利用できます。お試しください。 helm で peco もどきのコマンドを使うための設定 update! (2019/04/16) ● google-translate を使いやすくするための設定 をまとめました。翻訳する文章が日本語か英語かを判別し、他方に翻訳する機能をサポートしています。お試しください。 google-translate を使いやすくするための設定 update! (2019/12/30) ● WSL から Windows の exe コマンドを管理者権限で実行するコマンド winsudo を公開しました。UAC が有効な場合、ポップアップによる確認後に管理者権限でコマンドが実行されます。お試しください。 https //github.com/smzht/wsl-utils#-winsudo ● WSL のシェルから Cygwin のコマンドを実行するためのコマンド cyg を公開しました。Cygwin から WSL へ移行する際の過渡期に利用するツールとして使えるかと思います。お試しください。 https //github.com/smzht/wsl-utils#-cyg ● Emacs の日本語マニュアル を公開されている方がいらっしゃいます。大作です。紹介させていただきます。 https //ayatakesi.github.io/ ● Lisp と JavaScript は似ているのですね。興味深い。確かに、JavaScript の旧名は、LI ve S cri P t ですね。 https //www.slideshare.net/taiju/javascriptlisp https //qiita.com/derui/items/6e8de68cc1b7295de3a6 【本題】 このウィキでは、Windows で GNU Emacs を 快適に利用するための設定についてまとめています。完全ではありませんが、以下の環境で動作確認しています。 Windows 11 + GWSL + WSL2 + Ubuntu-20.04 + Emacs-27 + emacs-mozc(Google日本語入力 と連携)(Linux版 Emacs) Windows 11 + WSLg + WSL2 + Ubuntu-20.04 + Emacs-26 + emacs-mozc(Google日本語入力 と連携)(Linux版 Emacs) Windows 10 ver 2004 + VcXsrv + WSL2 + Ubuntu-20.04 + Emacs-26 + emacs-mozc(Google日本語入力 と連携)(Linux版 Emacs) Windows 10 ver 1909 + VcXsrv + WSL + Ubuntu-18.04 + Emacs-25 + emacs-mozc(Google日本語入力 と連携)(Linux版 Emacs) ※ 現在のメイン環境です。「WSL で Emacs を使うための設定」で設定方法を紹介しています。 ※ この環境の特徴は、以下のとおりです。 ・MinGW版 Emacs と異なり、設定でのいろいろな workaround(fakecygpty の設定や UTF-8 を使うための設定など)が不要です。 ・Cygwin版 Emacs と異なり、MinGW版 Emacs 並に高速に動作します。 ・Google日本語入力 との連携を可能とした mozc_emacs_helper.exe の導入で、日本語入力にも対応しています。 ・Cygwin版 Emacs で度々発生する vfork 問題が一切起こりません。 ・Linux の OS 環境をフルに利用可能です。(MinGW版 Emacs の様に別途 UNIX 環境を準備する必要がありません。) ・設定により、dired から Windows のドキュメントを直接開くことができます。(wslstart という cygstart と同機能のコマンドの作成により実現しています。) ・設定により、dired で Windows のショートカットをシンボリックリンクの様に扱えます。(w32-symlinks.el から最低限必要な設定を流用することで実現しています。) ・設定により、Windows パスや UNC パスを Linux のパスと同様に利用できます。(Emacs の Magic File Names の仕組みを利用して実現しています。) ・ViirtualBox で Linux を動作させた環境と異なり、Keyhac との連携(ウィンドウの切り替えなど)が可能です。 ・一つデメリットを挙げれば、画面へのファイルのドラッグ&ドロップができないことです。これは、「dired を OS と連携して使うための設定」で代替になると思います。 Windows 10 + gnupack-13.06(Cygwin は最新に更新)+ emacs-mozc(Google日本語入力 と連携)(Cygwin版 Emacs) Windows 10 + gnupack-13.06(Cygwin は最新に更新)+ Cygwin の emacs-w32 での差替え + emacs-mozc(Google日本語入力 と連携)(Cygwin版 Emacs) ※ WSL に移行する前まで使っていた環境です。 ※ 比較的新しいバージョンが提供される Cygwin の Emacs を利用する方法は、「gnupack-13 の環境で Cygwin の Emacs を利用するための設定」を参考としてください。 ※ この環境の特徴は、以下のとおりです。(以前までお勧めしていたので、まとめています。) ・MinGW版 よりちょっと(かなり?)遅めですが、設定でのいろいろな workaround が不要です。 ・Cygwin 側で作成した Windows ショートカット(CYGWIN環境変数 が winsymlinks lnk に設定された状態で ln -s コマンドで作成したリンク)が、シンボリックリンクとして認識されるのが便利です。 ・Google日本語入力 との連携を可能とした mozc_emacs_helper.exe の導入で、日本語入力も安定して動作します。 ・何らかのタイミングで vfork関連のエラーが発生することがあります。これを解決するのが厄介で、Cygwin版 Emacs を使う上での大きなデメリットとなっています。(この症状が発生した場合、Cygwin に対して rebaseall を行った後、OS の再起動をすると改善するような気がします。Cygwin の更新をすると rebase が掛かるので、その後 OS の再起動をすると良いと思います。) Windows 10 + gnupack-11.00(Cygwin は最新に更新)+ NTEmacs64 での差替え (MinGW版 Emacs) Windows 10 + gnupack-11.00(Cygwin は最新に更新)+ GNU配布版 Emacs での差替え + emacs-mozc(Google日本語入力 と連携)(MinGW版 Emacs) ※ 最新の MinGW版 Emacs を利用する方法は、「gnupack-11.00 の環境で NTEmacs64 を利用するための設定」を参考としてください。 ※ Windows のパスがそのまま利用できるなど、Windows との親和性は高いです。但し、問題なく使うためのハードルも高い(本質的ではない、設定でのいろいろな workaround が必要)です。 VirtualBox + Ubuntu-18.04 + Emacs-25 or 26 + emacs-mozc(mozc-server と連携)(Linux版 Emacs) Hyper-V + Ubuntu-18.04 + Emacs-25 or 26 + emacs-mozc(mozc-server と連携)(Linux版 Emacs) ※ 仮想環境で動かしているのに、非常に高速に動作します。Windows 環境との連携が重要でなければ、この環境が一番お勧めなのかもしれません。 ※ 本ページで紹介する設定は、Emacs バージョン 24.4 以上で利用可能な設定となっています。 ※ MinGW版 Emacs を利用する場合、Cygwin の導入、cygdriveプレフィクス の / 設定、cygwin-mount.el のインストールが前提となっている設定箇所があります。 ※ Cygwin版 Emacs 、MinGW版 Emacs を利用する場合、以下の「【基本設定】」が行われていることが前提となっている設定箇所が多数あります。本ページの設定を利用する場合には、「【基本設定】」の利用を強くお勧めします。 ※ フォントを滑らかに表示させるためには、次の方法をお試しください。 http //121ware.com/qasearch/1007/app/servlet/relatedqa?QID=013964 ■ Cygwin版 Emacs 特有の設定 【基本設定】 Windowsパス と UNCパス を使えるようにするための設定 【推奨設定】 dired でディレクトリのシンボリックリンクを実体のパスで開くための設定 ※ 後半に Cygwin版 Emacs 特有の設定があります。 gnupack-13 の環境で Cygwin の Emacs を利用するための設定 (関連) Cygwin で sudo 的コマンドを使うための設定 Cygwin で sudoedit を使うための設定 singleton な動きをする cygstart 的コマンドを使うための設定 (Cygwin版) gnupack-13.xx の背景色やフォントを gnupack-11.00 の時代のものと同じにするためのパッチ ■ MinGW版 Emacs 特有の設定 【基本設定】 UTF-8 をベースとして利用するための設定 【基本設定】 fakecygpty を使うための設定 tramp を tramp-method “scp” で使うための設定 ※ 後半に MinGW版 Emacs 特有の設定があります。 emacsclientw を使うための設定 Cygwin の Python を使って run-python を動かすための設定 gnupack-11.00 の環境で NTEmacs64 を利用するための設定 ※ MinGW版 Emacs であれば NTEmacs64 以外にも適用可能です。 ■ Windows版 Emacs 共通の設定 (上記の「【基本設定】」が前提となっている設定があります) W32-IME を快適に使うための設定 emacs-mozc を動かすための設定(mozc_emacs_helper コンパイル編) emacs-mozc を動かすための設定(サーバ準備編) emacs-mozc を動かすための設定(Emacs 設定編) ※ 一部の設定を除き、Linux版 Emacs にも適用可能です。 locate を使うための設定 Notepad を使って印刷するための設定 emacs-eclim を使うための設定 Emacs で指定したファイルを Eclipse で開くための設定 Windows ショートカットを dired と連携して使うための設定 ← お薦めはこちら w32-symlinks を dired と連携して使うための設定 ■ Linux の Emacs で利用できる設定 リモートマシン上の Emacs から、ローカルマシンの Windowsアプリケーションソフトを起動するための設定 VirtualBox 上の Ubuntu から WSL を経由して Windows 環境にアクセスするための設定 ■ Windows Subsystem for Linux の Emacs で利用できる設定 【推奨設定】 WSL で Emacs を使うための設定 emacs-mozc を動かすための設定(WSL 設定編) Windowsパス と UNCパス を使えるようにするための設定(WSL 設定編) WSL で NTFS シンボリックリンクや Windows ショートカットを作成するための設定 WSL の emacsclient を Windows から利用するための設定 Windows ショートカットを dired と連携して使うための設定 ← お薦めはこちら w32-symlinks を dired と連携して使うための設定 Notepad を使って印刷するための設定(WSL 設定編) locate を使うための設定(WSL 設定編) WSL の Emacs から VSCode でファイルを開くための設定 VSCode で開いているファイルを WSL の Emacs で開くための設定 Windows の ssh から WSL2 の sshd に接続するための設定 (関連) WSL で cygstart 的コマンドを使うための設定 singleton な動きをする cygstart 的コマンドを使うための設定 (WSL版) ■ Emacs 全般で利用できる設定 shell-mode を使うための設定 shell-mode で複数の漢字コードを混在して利用できるようにするための設定 shellバッファ を簡単にポップアップするための設定 dired を OS と連携して使うための設定 dired をより便利に使うための設定 dired でディレクトリのシンボリックリンクを実体のパスで開くための設定 tramp を tramp-method “scp” で使うための設定 tramp による接続先で Xクライアント を実行するための設定 helm を使うための設定 helm から comint の入力履歴を検索するための設定 helm で peco もどきのコマンドを使うための設定 ediff をスマートに使うための設定 elscreen を使うための設定 whitespace を使うための設定 cua-mode を使うための設定 multiple-cursors を使うための設定 google-translate を使いやすくするための設定 ■ 説明ページを作るまでもない設定の紹介 沢山開いているバッファをできるだけ一度に閉じるための設定 (global-set-key (kbd "M-c") (lambda () (interactive) (desktop-clear) (tramp-cleanup-all-connections))) カレントバッファを一発で閉じるための設定 (global-set-key (kbd "M-k") (lambda () (interactive) (kill-buffer (buffer-name)))) ウィンドウの右端で改行をするかどうかを切り替えるための設定 (global-set-key (kbd "C-c C- return ") 'toggle-truncate-lines) 横スクロールするための設定(キー設定が逆の感覚の方もいるかも) (global-set-key (kbd "C-,") 'scroll-left) ; のキー (global-set-key (kbd "C-.") 'scroll-right) ; のキー other-window がなければ開き、その window に移動するための設定 http //d.hatena.ne.jp/rubikitch/20100210/emacs (defun other-window-or-split () (interactive) (when (one-window-p) (split-window-sensibly)) (other-window 1)) (global-set-key (kbd "C-x o") 'other-window-or-split) 2 分割しているバッファを入れ替えるための設定 http //www.bookshelf.jp/cgi-bin/goto.cgi?file=meadow node=swap%20screen (defun swap-screen-with-cursor() "Swap two screen,with cursor in same buffer." (interactive) (let ((thiswin (selected-window)) (thisbuf (window-buffer))) (other-window 1) (set-window-buffer thiswin (window-buffer)) (set-window-buffer (selected-window) thisbuf))) (global-set-key (kbd "M-t") 'swap-screen-with-cursor) バッファの分割方向を縦と横とで入れ替えるための設定 https //github.com/daichirata/emacs-rotate (require 'rotate) (setq rotate-functions '(rotate even-horizontal rotate even-vertical)) (global-set-key (kbd "M-\\") 'rotate-layout) tramp を使っていて、NTEmacs の起動が遅くなる場合に必要な設定 (require 'recentf) (setq recentf-auto-cleanup 'never) (recentf-mode 1) その他参考 http //www.clear-code.com/blog/2012/3/20.html ■ おまけ ssh-agent や ssh-pageant を使って、ssh のパスフレーズの入力を省略するための設定(方法1) ssh-agent や ssh-pageant を使って、ssh のパスフレーズの入力を省略するための設定(方法2) ssh-agent や ssh-pageant を使って、ssh のパスフレーズの入力を省略するための設定(方法3) ← お薦めはこちら Windows の操作を Emacs のキーバインドで行うための設定 (AutoHotKey版) Windows の操作を Emacs のキーバインドで行うための設定 (Keyhac版) ← お薦めはこちら ■ その他 MobaXterm を使おう Windows で sshfs を使うお薦めのソフト Subversion には dsvn を使っています。melpa からインストールできます。 Git には magit が便利です。 Vimacs というのもあるんですね。Evil と逆の発想のものだと思います。 http //blog.cnu.jp/2009/07/28/vimacs/ http //uguisu.skr.jp/Windows/vim.html spacemacsというのも見つけました。Windows版 Emacs でも動いているようです。 https //github.com/syl20bnr/spacemacs ■ 参考サイト Manual http //emacs.rubikitch.com/emacs245-manual-ja/ https //ayatakesi.github.io/ https //github.com/ayatakesi Lisp と JavaScript https //www.slideshare.net/taiju/javascriptlisp https //qiita.com/derui/items/6e8de68cc1b7295de3a6 Common Lisp http //www.geocities.jp/m_hiroi/xyzzy_lisp.html functional-programming https //postd.cc/an-introduction-to-functional-programming/ https //qiita.com/hiruberuto/items/26a813ab2b188ca39019 nadvice http //g000001.cddddr.org/3623238000 ` before'(lambda ( rest r) (apply FUNCTION r) (apply OLDFUN r)) ` after'(lambda ( rest r) (prog1 (apply OLDFUN r) (apply FUNCTION r))) ` around'(lambda ( rest r) (apply FUNCTION OLDFUN r)) ` override'(lambda ( rest r) (apply FUNCTION r)) ` before-while'(lambda ( rest r) (and (apply FUNCTION r) (apply OLDFUN r))) ` before-until'(lambda ( rest r) (or (apply FUNCTION r) (apply OLDFUN r))) ` after-while'(lambda ( rest r) (and (apply OLDFUN r) (apply FUNCTION r))) ` after-until'(lambda ( rest r) (or (apply OLDFUN r) (apply FUNCTION r))) ` filter-args'(lambda ( rest r) (apply OLDFUN (funcall FUNCTION r))) ` filter-return'(lambda ( rest r) (funcall FUNCTION (apply OLDFUN r))) generalized variables http //kawabata.github.io/blog/2013-03-14-general-variables.html http //qiita.com/kawabata@github/items/9a1a1e211c57a56578d8 lexical-binding http //sakito.jp/emacs/emacs24.html#emacs-lisp-lexical-binding http //d.hatena.ne.jp/mhayashi1120/20130327/1364396586 flet http //ja.stackoverflow.com/questions/5458/flet%E3%81%A8cl-flet%E3%81%AE%E5%B7%AE%E7%95%B0 noflet http //emacs.rubikitch.com/noflet/ function http //www.mew.org/~kazu/doc/elisp/function.html custom-set-variables http //kawamuray.hatenablog.com/entry/2013/11/03/180543 buffer local variable https //qiita.com/yoshrc/items/00f3c08f7a5cac911c3a https //qiita.com/tadsan/items/9d287a57c26711387043 Emacs http //qiita.com/ytoda129/items/58078d8c7e74d9144014 https //miyazakikenji.wordpress.com/2015/08/11/ac-mozc-on-emacs25-in-ubuntu/(誤記有: apt-add repository - apt-add-repository。インストールされるものが最新過ぎるかも。) http //nkenbou.hatenablog.com/entry/2015/06/30/051408 http //askubuntu.com/questions/87872/how-do-i-accept-the-configuration-screen-that-pops-up-when-installing-postfix http //tanehp.ec-net.jp/heppoko-lab/prog/zakki/emacs/emacs.html http //d.hatena.ne.jp/tomoya/20081228/1230421982 http //blog.ichiroc.in/entry/2013/08/30/185953 init-loader.el http //d.hatena.ne.jp/gin0606/20111021/1319196327 http //tech.kayac.com/archive/divide-dot-emacs.html http //qiita.com/catatsuy/items/5f1cd86e2522fd3384a0 font http //extra-vision.blogspot.com/2016/07/emacs.html http //mix-mplus-ipa.osdn.jp/migu/ http //save.sys.t.u-tokyo.ac.jp/~yusa/fonts/ricty.html dabbrev http //konbu13.hatenablog.com/entry/2014/03/09/080947 emacsclient https //qiita.com/acple@github/items/4be7eb774a28d574281e helm https //github.com/emacs-helm/helm/wiki https //github.com/emacs-helm/helm/wiki/Developing http //syohex.hatenablog.com/entry/2015/10/10/171926 https //masutaka.net/chalow/2014-04-02-1.html mozc http //nyaruru.hatenablog.com/archive http //d.hatena.ne.jp/rti7743/20100513/1273710518 https //www.codeproject.com/Articles/13724/Windows-IPC http //myfuturesightforpast.blogspot.com/2015/08/googlemozcimewindowslinuxandroid.html https //github.com/kento1218/mozc-incog-switcher Google日本語入力 https //productforums.google.com/forum/#!topic/ime-ja/5CCIenG_0Zw https //productforums.google.com/forum/#!topic/ime-ja/xBJLDHyJVw0 eclim http //eclim.org https //github.com/senny/emacs-eclim OminiSharp https //github.com/omnisharp roslyn https //www.buildinsider.net/enterprise/roslyn/01 lsp https //github.com/emacs-lsp https //github.com/joaotavora/eglot https //microsoft.github.io/language-server-protocol/implementors/servers/ https //qiita.com/blue0513/items/acc962738c7f4da26656 https //qiita.com/atsushieno/items/ce31df9bd88e98eec5c4 https //qiita.com/515hikaru/items/8b364b4d091459a85dc0 TabNine https //qiita.com/blue0513/items/2634fcb3757629124c87 https //qiita.com/gorogoroyasu/items/f49ee019ea886181d972 IDE https //www.mediamaxjapan.com/techblog/articles/lets-start-using-ide/ WSL https //opcdiary.net/?p=32284 https //qiita.com/nishemon/items/bb3aca972404f68bfcd6 https //qiita.com/zophos/items/5cf66385a88186c2fac9 http //ascii.jp/elem/000/001/278/1278792/ http //ascii.jp/elem/000/001/402/1402257/ https //ascii.jp/elem/000/001/803/1803883/ http //www.clear-code.com/blog/2017/11/8.html https //www.atmarkit.co.jp/ait/articles/1711/09/news032.html for Windows 10 1803 https //kledgeb.blogspot.jp/2018/03/wsl-142-windows-101803wsl.html http //www.atmarkit.co.jp/ait/articles/1805/24/news022.html for Windows 10 1607 https //github.com/goreliu/wsl-terminal https //github.com/rprichard/wslbridge https //github.com/xilun/cbwin http //qiita.com/shiena/items/b8036514c217000a221 WSL2 https //ascii.jp/elem/000/004/007/4007561/ binfmt_misc http //ascii.jp/elem/000/001/428/1428626/ https //qiita.com/lnznt/items/c729d80d0800a8f78298 http //archive.linux.or.jp/JF/JFdocs/kernel-docs-2.6/binfmt_misc.txt.html D-Bus http //d.hatena.ne.jp/debug-ito/20130502/1367487352 http //www.usupi.org/sysad/175.html http //www.usupi.org/sysad/176.html http //wordpress.honobono-life.info/lin-base/linux%E3%81%AEdbus-daemon%E3%83%97%E3%83%AD%E3%82%BB%E3%82%B9%E3%81%AE%E6%A6%82%E8%A6%81/ bash http //www.akamoz.jp/you/uni/shellscript.htm https //orebibou.com/2017/04/shopt%E3%82%B3%E3%83%9E%E3%83%B3%E3%83%89%E3%81%A7%E8%A8%AD%E5%AE%9A%E3%81%A7%E3%81%8D%E3%82%8Bbash%E3%81%AE%E4%BE%BF%E5%88%A9%E8%A8%AD%E5%AE%9A%E3%81%BE%E3%81%A8%E3%82%81/ gsudo https //qiita.com/_masa_u/items/a799745d70b30c32a03b https //github.com/gerardog/gsudo stdbuf https //linuxcommand.net/stdbuf/ cocot https //vmi.jp/software/cygwin/cocot.html ssh http //kazuph.hateblo.jp/entry/2013/02/04/192358 http //qiita.com/kazuph/items/46e7f665f8c09ec29471 http //inaz2.hatenablog.com/entry/2013/04/30/221348 ssh-agent-wsl https //qiita.com/q1701/items/3cdc2d7ef7a3539f351d socat http //racchai.hatenablog.com/entry/2016/04/14/173000 SocksCap64 https //www.cup.com/staticip/manual/win_sockscap64.html Named Pipe TCP Proxy Utility http //shvechkov.tripod.com/nptp.html https //yamanxworld.blogspot.jp/2011/06/com-ems.html trac http //blog.kyanny.me/entry/2011/11/19/023643 DOS https //goo.gl/rS2qoh https //thinca.hatenablog.com/entry/20100210/1265813598 http //coelacanth-deepsea.hatenablog.com/entry/2013/01/13/162350 https //korokorokoron.hatenadiary.org/entries/2010/03/16 http //ykr414.com/dos/bat.html http //pentan.info/server/windows/cmd/dp0.html https //tunemicky.blogspot.com/2012/03/cmdexe-c.html http //www.atmarkit.co.jp/ait/articles/1306/07/news111.html UAC https //www.glamenv-septzen.net/view/832 fsutil http //www.atmarkit.co.jp/ait/articles/1306/28/news106.html https //blogs.technet.microsoft.com/jpntsblog/2016/08/31/smbandsymlink/ Windows Shortcut File Format https //storage.googleapis.com/google-code-archive-downloads/v2/code.google.com/8bits/The_Windows_Shortcut_File_Format.pdf https //docs.microsoft.com/en-us/openspecs/windows_protocols/ms-shllink/16cb4ca1-9339-4d0c-a68d-bf1d6cc0f943 Android http //d.hatena.ne.jp/moerrari/20170723 http //ottan.xyz/android-linux-noroot-gui-5690/ http //qiita.com/z80oolong/items/4ef119a6af79a9276a0d http //www.mhatta.org/wp/blog/2017/08/06/emacs-on-android/ Keyhac https //sites.google.com/site/craftware/keyhac-ja https //github.com/crftwr/keyhac/blob/master/keyhac_main.py#L7-L21 closure http //www.lifewithpython.com/2014/09/python-use-closures.html?m=1 http //blog.starbug1.com/archives/290 AutoHotKey https //so-zou.jp/software/tool/system/auto-hot-key/introduction/ http //ahkwiki.net/Top http //fxrobot.hatenablog.com/archive/category/AutoHotKey Bat To Exe Converter http //blog.mukairiku.net/2012/10/%E3%83%90%E3%83%83%E3%83%81%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%82%92exe%E3%81%AB%E5%A4%89%E6%8F%9B%E3%81%99%E3%82%8B-bat-to-exe-converter.html http //www.f2ko.de/en/b2e.php Emacs keybind https //linuxfan.info/emacs-key-theme https //qiita.com/shiena/items/37032aacc241b1333e13 xkeysnail https //qiita.com/mooz@github/items/c5f25f27847333dd0b37 https //github.com/mooz/xkeysnail q-text-as-data http //harelba.github.io/q/ja/ https //www.google.com/search?q=q-text-as-data qq https //github.com/mattn/qq https //mattn.kaoriya.net/software/lang/go/20160805190022.htm Open-usp-Tukubai https //github.com/usp-engineers-community/Open-usp-Tukubai article http //kledgeb.blogspot.jp/2016/07/wsl-31-windows-10ubuntuunityxubuntuxfce4.html https //github.com/Microsoft/BashOnWindows/issues/637 http //www.zdnet.com/article/how-to-run-run-the-native-ubuntu-desktop-on-windows-10/ http //winaero.com/blog/run-ubuntu-unity-on-windows-10/ https //blogs.msdn.microsoft.com/wsl/2016/10/19/windows-and-ubuntu-interoperability/ http //kledgeb.blogspot.jp/2016/10/wsl-51-bashwindows.html http //ascii.jp/elem/000/001/246/1246548/ http //ascii.jp/elem/000/001/250/1250797/ MacOS https //applech2.com/archives/45181430.html https //applech2.com/archives/47447129.html https //blog.amedama.jp/entry/lima-macos-amd64-vm https //zenn.dev/ciloholic/articles/bbc6927ecfbdb4 https //qiita.com/chibiegg/items/eede37345f7058ce604d https //dev.classmethod.jp/articles/intro-to-multipass/ (function(i,s,o,g,r,a,m){i[ GoogleAnalyticsObject ]=r;i[r]=i[r]||function(){ (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o), m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m) })(window,document, script , //www.google-analytics.com/analytics.js , ga ); ga( create , UA-40267130-1 , atwiki.jp ); ga( send , pageview );
https://w.atwiki.jp/nkym_memo/pages/205.html
;; .emacs ;; Last Updated 2014/05/14 Wed 03 27 20 (custom-set-variables ;; custom-set-variables was added by Custom. ;; If you edit it by hand, you could mess it up, so be careful. ;; Your init file should contain only one such instance. ;; If there is more than one, they won't work right. '(column-number-mode t) '(show-paren-mode t)) (custom-set-faces ;; custom-set-faces was added by Custom. ;; If you edit it by hand, you could mess it up, so be careful. ;; Your init file should contain only one such instance. ;; If there is more than one, they won't work right. '(default ((t ( inherit nil stipple nil background "gray7" foreground "white" inverse-video nil box nil strike-through nil overline nil underline nil slant normal weight normal height 98 width normal foundry "unknown" family "Takaoゴシック"))))) ;; 半角2つ = 全角1つになるheight = 88, 92, 102 (if window-system (progn ;; 文字の色を設定 (add-to-list 'default-frame-alist '(foreground-color . "white")) ;; 背景色を設定 (add-to-list 'default-frame-alist '(background-color . "gray10")) ;; カーソルの色を設定 (add-to-list 'default-frame-alist '(cursor-color . "SlateBlue2")) ;; ;; マウスポインタの色を設定 ;; (add-to-list 'default-frame-alist '(mouse-color . "SlateBlue2")) ;; ;; モードラインの文字の色を設定 ;; (set-face-foreground 'modeline "white") ;; ;; モードラインの背景色を設定 ;; (set-face-background 'modeline "MediumPurple2") ;; ;; 選択中のリージョンの色を設定 (set-face-background 'region "Dark Slate Grey") ;; ;; モードライン(アクティブでないバッファ)の文字色を設定 ;; (set-face-foreground 'mode-line-inactive "gray30") ;; ;; モードライン(アクティブでないバッファ)の背景色を設定 ;; (set-face-background 'mode-line-inactive "gray85") (set-face-foreground 'font-lock-comment-face "darkorange") ;; コメント (set-face-foreground 'font-lock-string-face "hotpink") ;; ""で囲まれた文字 (set-face-foreground 'font-lock-keyword-face "cyan") (set-face-foreground 'font-lock-function-name-face "white") (set-face-foreground 'font-lock-variable-name-face "white") (set-face-foreground 'font-lock-type-face "skyblue1") (set-face-foreground 'font-lock-warning-face "yellow") (set-face-foreground 'font-lock-builtin-face "lightsteelblue") (set-face-background 'fringe "gray7") )) ;;auto-install.elのインストール手順 ;; $mkdir -p ~/.emacs.d/auto-install ;; cd ~/.emacs.d/auto-install ;; wget http //www.emacswiki.org/emacs/download/auto-install.el ;; emacs --batch -Q -f batch-byte-compile auto-install.el ;;;Emacs Lispインストーラを利用 (add-to-list 'load-path "~/.emacs.d/auto-install") (add-to-list 'load-path "~/.emacs.d/plugins/yasnippet-0.6.1c/") ;;; install-elisp-from-emacswiki "auto-install.el" (require 'auto-install) ;;起動時にEmacswikiのページを補完候補に加える ;;(auto-install-update-emacswiki-package-name t) ;;install-elisp.el互換モード (auto-install-compatibility-setup) ;;ediff関連のバッファを一つのフレームにまとめる (setq ediff-window-setup-function 'ediff-setup-windows-plain) ;;================================================================================ ;; 基本設定 ;;================================================================================ ;; スタートアップを非表示 (setq inhibit-startup-screen -1) ;; ビープ音を消す (setq ring-bell-function 'ignore) ;; 現在行に色をつける (global-hl-line-mode 1) ;; その行の色 (set-face-background 'hl-line "black") ;; 履歴を次回Emacs起動時にも保存する (savehist-mode 1) ;; 対応する括弧を光らせる (show-paren-mode 1) ;; カーソルの位置が何文字目かを表示する (column-number-mode t) ;; バックアップファイルを作らない (setq backup-inhibited t) ;; Xでのクリップボードを共有 (setq x-select-enable-clipboard t) ;; yes-or-noをy-or-nに省略 (defalias 'yes-or-no-p 'y-or-n-p) ;; 行の先頭でC-kを一回押すだけで行全体を消去する (setq kill-whole-line t) ;; ツールバーを非表示 (tool-bar-mode -1) ;; メニューバーを非表示 (menu-bar-mode -1) ;; 圧縮されたファイルも編集できるようにする (auto-compression-mode t) ;; スクロールを一行ずつにする (setq scroll-step 1) ;; スクロールバーを削除 (setq scroll-bar-mode -1) ;;; 現在の関数名をモードラインに表示 (which-function-mode 1) ;;; emacsclient ;; ファイルを現在のemacsで開く ;(server-start) ;;------------------------ キーバインドの変更 ---------------------------------- ;; 指定の行に移る (global-set-key "\M-g" 'goto-line) ;; undo (global-set-key "\C-z" 'undo) ;; ウィンドウの移動をM-tに (global-set-key "\M-t" 'other-window) ;; C-hをBackSpaceに (global-set-key "\C-h" 'delete-backward-char) ;; M-x compile を f5 に (global-set-key [f5] 'compile) ;; C-mで改行+インデント (global-set-key "\C-m" 'newline-and-indent) ;;;------------------- 初期フレームの設定 ------------------------------------ (setq initial-frame-alist (append '((width . 80) ; フレーム幅(文字数) (height . 68)) ; フレーム高(文字数) initial-frame-alist)) ;;; 新規フレームのデフォルト設定 (setq default-frame-alist (append '((width . 80); フレーム幅(文字数) (height . 68)); フレーム高(文字数) default-frame-alist)) ;;; ファイル更新日を自動的に書き換える。 ;; ファイルの頭に "last updated "をつけくわえればよい (require 'time-stamp) ;; 日本語で日付を入れたくないのでlocaleをCにする (defun time-stamp-with-locale-c () (let ((system-time-locale "C")) (time-stamp) nil)) (if (not (memq 'time-stamp-with-locale-c write-file-hooks)) (add-hook 'write-file-hooks 'time-stamp-with-locale-c)) (setq time-stamp-active t) (setq time-stamp-start "Last Updated ") (setq time-stamp-format "%04y/%02m/%02d %3a %02H %02M %02S") (setq time-stamp-end " ") ;;;Last Updated の後に空白2つ以上いれると置換(1つにはできない) ;;; タイトルバーにファイル名を表示する (setq frame-title-format (format "%s@%s %%f" (user-login-name) (system-name))) ;;; ファイルの自動挿入 (auto-insert-mode) ;; 自動挿入するファイルのあるディレクトリ ;; 最後の/は必須 (setq auto-insert-directory "~/.emacs.d/insert/") ;; 自動挿入するファイル (define-auto-insert "\\.c" "c-template.c") (define-auto-insert "\\.tex" "tex-template.tex") ;;================================================================================ ;;; viewer.el view-modeの設定 ;; M-x install-elisp-from-emacswiki viewer.el ;; ;; C-x C-rでview-modeでファイルを開く ;; (setq view-read-only t) ;; ;; 書き込み不能な場合はview-modeを抜けないように ;; (require 'viewer) ;; (viewer-stay-in-setup) ;; ;; .log .out .datファイルをview-modeで開く ;; (setq view-mode-by-default-regexp "\\.log") ;; (setq view-mode-by-default-regexp "\\.out") ;; (setq view-mode-by-default-regexp "\\.dat") ;; ;;; view-mode時にモードラインに色をつける ;; ;; 色名を指定 ;; (setq viewer-modeline-color-unwritable "tomato") ;; (setq viewer-modeline-color-view "orange") ;; (viewer-change-modeline-color-setup) ;; ;; view-mode時のキーバインド ;; (define-key view-mode-map "h" 'backward-char) ;; (define-key view-mode-map "j" 'next-line) ;; (define-key view-mode-map "k" 'previous-line) ;; (define-key view-mode-map "l" 'forward-char) ;; (define-key view-mode-map "J" 'View-scroll-line-forward) ;; (define-key view-mode-map "K" 'View-scroll-line-backward) ;; (define-key view-mode-map "b" 'scroll-down) ;; (define-key view-mode-map " " 'scroll-up) ;; ;; ;; bm.el ;; (define-key view-mode-map "m" 'bm-toggle) ;; (define-key view-mode-map "[" 'bm-previous) ;; (define-key view-mode-map "]" 'bm-next) ;; ;; view-modeを有効・無効にする ;; ;; 0.04秒以内に jk を同時押しでview-modeに移行 ;; (require 'key-chord) ;; (setq key-chord-two-keys-delay 0.04) ;; (key-chord-mode 1) ;; (key-chord-define-global "jk" 'view-mode) ;================================================================================ ;;; redo+.el (require 'redo+) ;; M-zに設定 (global-set-key "\M-z" 'redo) (setq undo-no-redo t); 過去のundoがredoされないようにする ;; 大量のundoに耐えられるようにする (setq undo-limit 6000) (setq undo-strong-limit 9000) ;;;fullscreen.el (require 'fullscreen) (global-set-key [f11] 'fullscreen) ;;;-------------------- recentf-ext.el -------------------------- ;; install-elisp-from-emacswiki recentf-ext.el ;; 保存しておく数 (setq recentf-max-saved-items 1000) ;; 最近使ったファイルに加えないファイルを正規表現で指定する (setq recentf-exclude '("/TAGS$" "/var/tmp/")) (require 'recentf-ext) ;; f8をショートカットキーに (global-set-key [f8] 'recentf-open-files) ;;; auto-complete.el ;; install-elisp-from-emacswiki auto-complete.el ;;(require 'auto-complete) ;;(global-auto-complete-mode 1) ;;;col-highlight.el ;; auto-install-batch col-highlight.el ;(require 'col-highlight) ;(column-highlight-mode 1) ;;何もしないでいるとハイライトを始めるようにする場合 ;(toggle-highlight-column-when-idle 1) ;(col-highlight-set-interval 3) ;;;============================= hippie-expand ==================================== ;;; 略語展開の順を設定 (setq hippie-expand-try-functions-list '(try-expand-dabbrev try-expand-dabbrev-all-buffers try-expand-dabbrev-from-kill try-complete-file-name-partially try-complete-file-name try-expand-all-abbrevs try-expand-list try-expand-line try-complete-lisp-symbol-partially try-complete-lisp-symbol)) ;; キーバインドの変更 C-; (global-set-key [?\C-\;] 'hippie-expand ) ;;; ipa.el (require 'ipa) ;;; 背景色 (set-face-background 'highlight "Corn Flower Blue") ;;;---------------------- sequential-command.el--------------------------------- ;;; M-x auto-install-batch sequential-command (require 'sequential-command-config) (sequential-command-setup-keys) ;;================================================================================ ;;; smartchr.el ;; M-x install-elisp ;; https //github.com/imakado/emacs-smartchr/raw/master/smartchr.el (require 'smartchr) ;; once "", twice " (global-set-key (kbd "\"") (smartchr '("\"`!!'\"" "\""))) (add-hook 'c-mode-hook '(lambda () (local-set-key ( kbd "(") (smartchr '("( `!!' )" "()" "("))) (local-set-key ( kbd "\'") (smartchr '("\'`!!'\'" "\'"))) (local-set-key ( kbd "\,") (smartchr '("\, " "\,"))) (local-set-key (kbd "[") (smartchr '("[ `!!' ]" "[]" "["))) (local-set-key (kbd "=") (smartchr '("= " "== " "="))) )) (add-hook 'c++-mode-hook '(lambda () (local-set-key ( kbd "(") (smartchr '("( `!!' )" "()" "("))) (local-set-key ( kbd "\'") (smartchr '("\'`!!'\'" "\'"))) (local-set-key ( kbd "\,") (smartchr '("\, " "\,"))) (local-set-key (kbd "[") (smartchr '("[ `!!' ]" "[]" "["))) (local-set-key (kbd "=") (smartchr '("= " "== " "="))) (local-set-key (kbd " ") (smartchr '(" " " " ))) )) (add-hook 'org-mode-hook '(lambda () (local-set-key ( kbd "$" ) ( smartchr '("$" ""))) (local-set-key ( kbd "\{" ) ( smartchr '("\{`!!'\}" "\{" "{{"))) )) (add-hook 'python-mode-hook '(lambda () (local-set-key ( kbd "(") (smartchr '("( `!!' )" "()" "("))) (local-set-key ( kbd "\'") (smartchr '("\'`!!'\'" "\'"))) (local-set-key ( kbd "\,") (smartchr '("\, " "\,"))) (local-set-key (kbd "[") (smartchr '("[ `!!' ]" "["))) (local-set-key (kbd "=") (smartchr '("= " "== " "="))) )) ;;;----------------------- auto-save-buffers.el --------------------------------- ;; M-x install-elisp ;; http //homepage3.nifty.com/oatu/emacs/archives/auto-save-buffers.el (require 'auto-save-buffers) ;; アイドル0.5秒で保存 (run-with-idle-timer 0.5 t 'auto-save-buffers) (run-with-idle-timer 0.5 t 'auto-save-buffers "" ".ipa$") ;;; open-junk-file.el ;; M-x install-elisp-from-emacswiki open-junk-file.el ;; Usage M-x open-junk-file (require 'open-junk-file) (setq open-junk-file-format "~/junk/%Y-%m-%d-%H%M%S.") (global-set-key "\C-x\C-j" 'open-junk-file) ;;; bm.el ;; M-x install-elisp ;; http //cvs.savannah.gnu.org/viewvc/*checkout*/bm/bm/bm.el (setq-default bm-buffer-persistence nil) (setq bm-restore-repository-on-load t) (require 'bm) (add-hook 'find-file-hooks 'bm-buffer-restore) (add-hook 'kill-buffer-hook 'bm-buffer-save) (add-hook 'after-save-hook 'bm-buffer-save) (add-hook 'after-revert-hook 'bm-buffer-restore) (add-hook 'vc-before-checkin-hook 'bm-buffer-save) (global-set-key [f7] 'bm-toggle) (global-set-key "\C-xp" 'bm-previous) (global-set-key "\C-xn" 'bm-next) ;;; twittering-mode (add-to-list 'load-path "~/.emacs.d/twittering-mode-2.0.0/") (require 'twittering-mode) ;; Show icons (setq twittering-icon-mode nil) ;; Timeline format (setq twittering-status-format "%i %s %S, %@ \n %t") ;; Update your timeline each 300 seconds (5 minutes) (setq twittering-timer-interval 30) (add-hook 'twittering-mode-hook (lambda () (mapc (lambda (pair) (let ((key (car pair)) (func (cdr pair))) (define-key twittering-mode-map (read-kbd-macro key) func))) '(("F" . twittering-favorite) ("R" . twittering-replies-timeline) ("U" . twittering-user-timeline) ("W" . twittering-update-status-interactive))))) ;;;================== Latex ======================================== ;; 日本語コードをeuc-japanに (set-language-environment "Japanese") (set-default-coding-systems 'euc-japan) (set-terminal-coding-system 'euc-japan) ;;; Yatex (add-to-list 'load-path "/usr/share/emacs/site-lisp/yatex/") (setq auto-mode-alist (cons (cons "\\.tex$" 'yatex-mode) auto-mode-alist)) (autoload 'yatex-mode "yatex" "Yet Another LaTeX mode" t) (setq YaTeX-inhibit-prefix-letter nil) (setq dvi2-command "xdvi -geo +0+0 -s 7 -expert -watchfile 3") ;;;reftex (add-hook 'latex-mode-hook 'turn-on-reftex) ; with Emacs latex mode (add-hook 'LaTeX-mode-hook 'turn-on-reftex) ; with AUCTeX LaTeX mode (add-hook 'yatex-mode-hook 'turn-on-reftex) ; with YaTeX mode ;;------------------- 行番号の表示 --------------------------------- (autoload 'setnu-mode "setnu" nil t) (global-set-key [f12] 'setnu-mode) ;;========================== kmacro-save =============================== (defvar kmacro-save-file "~/.emacs" "キーボードマクロを保存するファイル") (defun kmacro-save (symbol) (interactive "name for last kbd macro ") (name-last-kbd-macro symbol) (with-current-buffer (find-file-noselect kmacro-save-file) (goto-char (point-max)) (insert-kbd-macro symbol) (basic-save-buffer))) ;; 現在行をコピー (fset 'select-this-line "\C-e\C-@\C-a\M-w") (global-set-key [?\C-\,] 'select-this-line) ;; 文末に;を入力 (fset 'insert-statement-end "\C-e;\C-a\C-i") (global-set-key [?\C-\.] 'insert-statement-end) ;; {}を改行してインデント (fset 'parentheses-and-indent "\C-e{\C-j\C-j}\C-p") (global-set-key [?\M-\[] 'parentheses-and-indent) ;; インデントして次の行へ (fset 'indent-and-next "\C-i\C-n") (global-set-key [?\M-i] 'indent-and-next) ;;------------- yasnippet.el ------------------------------- (require 'yasnippet-config) (yas/setup "~/.emacs.d/plugins/yasnippet-0.6.1c") ;;------------- iswitchb.el ------------------------------- ;; バッファ切り替えを部分文字列で可能に (iswitchb-mode 1) (setq read-buffer-function 'iswitchb-read-buffer) (setq iswitchb-regexp nil) ;; 新しいバッファ作成するときは聞かない (setq iswitchb-prompt-newbuffer nil) ;; uniquify.el (require 'uniquify) ;; filename dir の形式 (setq uniquify-buffer-name-style 'post-forward-angle-brackets) ;; *で囲まれたバッファ名は対象外にする (setq uniquify-ignore-buffers-re "*[^*]+*") ;;---------------html-helper-mode------------------------------ (require 'html-helper-mode) (require 'html-mode) (require 'tempo) ;; ;; w3m ;; (require 'w3m-load) ;; (setq w3m-home-page "www.google.co.jp/") ;起動時に開くページ ;; (setq w3m-use-cookies t) ;クッキーを使う ;; (setq w3m-bookmark- "~/.w3m/bookmark.html") ;ブックマークを保存する ;; (setq browse-url-browser-function 'w3m-browse-url) ;; (autoload 'w3m-browse-url "w3m" "Ask a browser to show a URL." t) ;; (global-set-key "\C-xm" 'browse-url-at-point) ;; (autoload 'w3m-find-file "w3m" "w3m interface function for local file." t) ;; (autoload 'w3m-search "w3m-search" "Search QUERY using SEARCH-ENGIN." t) ;; (setq w3m-search-default-engin "google-ja") ;; (global-set-key "\C-cs" 'w3m-search) ;; (autoload 'w3m-weather "w3m-weather" "Display weather report." t) ;; (autoload 'w3m-antenna "w3m-antenna" "Report change of WEB ." t) ;; (autoload 'w3m- "w3m-namazu" "Search files with Namazu." t) ;; コードブロックの折りたたみ (require 'fold-dwim) ;; コンパイルでの*compilation*ウィンドウの文字コード調整 (add-hook 'set-language-environment-hook (lambda () (when (equal "ja_JP.UTF-8" (getenv "LANG")) (setq default-process-coding-system '(utf-8 . utf-8)) (setq default-file-name-coding-system 'utf-8)) (when (equal "Japanese" current-language-environment) (setq default-buffer-file-coding-system 'iso-2022-jp)))) (set-language-environment "Japanese") ;; カーソルの点滅を止める ;;(blink-cursor-mode 0) ;; セッションの保存 ;; emacs再起動時に前回のバッファ等を復元 ;(desktop-save-mode 1) ;; 拡張子によるメジャーモードの変更 (setq auto-mode-alist (cons (cons "\\.h$" 'c++-mode) auto-mode-alist)) ;; シェルスクリプトの実行属性を自動で付加 ;; ファイル先頭が#!で始まり、ファイル名が.で始まらない場合 (defun make-file-executable () "Make the file of this buffer executable, when it is a script source." (save-restriction (widen) (if (string= "#!" (buffer-substring-no-properties 1 (min 3 (point-max)))) (let ((name (buffer-file-name))) (or (equal ?. (string-to-char (file-name-nondirectory name))) (let ((mode (file-modes name))) (set-file-modes name (logior mode (logand (/ mode 4) 73))) (message (concat "Wrote " name " (+x)")))))))) (add-hook 'after-save-hook 'make-file-executable) (require 'tramp) ;; apache-mode (autoload 'apache-mode "apache-mode" nil t) (add-to-list 'auto-mode-alist '("\\.htaccess\\'" . apache-mode)) (add-to-list 'auto-mode-alist '("httpd\\.conf\\'" . apache-mode)) (add-to-list 'auto-mode-alist '("srm\\.conf\\'" . apache-mode)) (add-to-list 'auto-mode-alist '("access\\.conf\\'" . apache-mode)) (add-to-list 'auto-mode-alist '("sites-\\(available\\|enabled\\)/" . apache-mode)) ;; php-mode (require 'php-mode) ;; スクロールバーを消す (scroll-bar-mode nil) ;; ;; kill-all-buffers (defun kill-all-buffers () (interactive) (loop for buffer being the buffers do (kill-buffer buffer))) ;;; Arduino (add-to-list 'load-path "~/.emacs.d/arduino-mode/") (load "arduino-mode") (setq auto-mode-alist (cons '("\\.pde$" . arduino-mode) auto-mode-alist)) ;;--------------org-mode--------------------------------------- (require 'org) ;; 折り返し有効 (setq org-startup-truncated nil) (defun org-insert-upheading-dwim (arg) "1レベル上の見出しを入力する" (interactive "P") (org-insert-heading arg) (cond ((org-on-heading-p) (org-do-promote)) ((org-at-item-p) (org-indent-item -1)))) (defun org-insert-heading-dwim (arg) "現在と同じレベルの見出しを入力する。" "C-u 1レベル上" "C-u C-u 1レベル下" (interactive "p") (case arg (4 (org-insert-subheading nil)) ;C-u (16 (org-insert-upheading nil)) ;C-u C-u (t (org-insert-heading nil)))) (define-key org-mode-map (kbd " C-return ") 'org-insert-heading-dwim) ;; ;1行の文字数 ;; (setq org-mode-hook ;; '(lambda () (auto-fill-mode 1) ;; (setq default-fill-column 100) ;; (setq defailt-tab-width 4))) ;; org-agendaを開く (global-set-key (kbd "C-c a") 'org-agenda) (org-remember-insinuate) ;; メモを格納するorgファイルの設定 (setq org-directory "~/Documents/memo") (setq org-default-notes-file (expand-file-name "memo.org" org-directory)) ;; テンプレートの設定 (setq org-remember-templates '(("Note" ?n "** %?\n %i\n %a\n %T" nil "Inbox") ("Todo" ?t "** TODO %?\n %i\n %a\n %T" nil "Inbox"))) ;; Select template [n]ote [t]odo (global-set-key (kbd "\C-c n") 'org-remember) ;; TODOリストの設定 (setq org-use-fast-todo-selection t) (setq org-todo-keywords '((sequence "TODO(t)" "STARTED(s)" "WAITING(w)" "|" "DONE(x)" "CANCEL(c)") (sequence "APPT(a)" "|" "DONE(x)" "CANCEL(c)" ))) ;; ハイパーリンクの作成 (global-set-key (kbd "C-c l") 'org-store-link) ;; M-x org-rememberによるメモを集めるorgファイル ;(setq org-default-notes-file "~/Documents/memo/plan.org") ;; 予定表に使うorgファイルのリスト (setq org-agenda-files (cons org-default-notes-file (directory-files "~/Documents/Private/2013/" t "\\.org$"))) ;; 監視するファイルを追加 (setq progress-directory-list (directory-files "~/Documents/Progress/" nil "^\\([^.]\\|\\.[^.]\\|\\.\\..\\)")) (while progress-directory-list (setq tmp-list (concatenate 'string "~/Documents/Progress/" (car progress-directory-list))) (setq org-agenda-files (append org-agenda-files (directory-files tmp-list t "\\.org$"))) (setq progress-directory-list (cdr progress-directory-list )) ) ;; txtをorg-modeで開く (setq auto-mode-alist (cons '("\\.txt$" . org-mode) auto-mode-alist)) ;;; gtags (require 'gtags) (add-hook 'c++-mode-hook 'gtags-mode) (add-hook 'c-mode-hook 'gtags-mode) (setq view-read-only t) ;; cpp-highlight-buffer (setq cpp-known-face 'default) (setq cpp-unknown-face 'highlight) (setq cpp-face-type 'light) (setq cpp-known-writable 't) (setq cpp-unknown-writable 't) (setq cpp-edit-list '(("1" nil (foreground-color . "dim gray") both nil) ("0" (foreground-color . "dim gray") nil both nil)))